/* Die Klasse Konfig
 * 
 * Die Klasse Konfig beschreibt wie sich die
 * Turingmaschine zu verhalten hat.
 * 
 * 
 * Datei: Konfig.java          		Autor: Martin Fischer 
 * Datum: 19.11.2011                    Version:1.0
 * 
 * 
 */
package kommunikation.Parser;

public class Konfig
{

  /*
   * Operationen: R = L/S- Kopf nach Rechts bewegen L/S- Kopf nach Links
   * bewegen L/S- Kopf nicht bewegen
   */
  protected static final int R = 1;
  protected static final int L = -1;
  protected static final int N = 0;
  /*
   * Zeichen vom Band lesen
   */
  private char leseZeichen; 
  /*
   * Zeichen auf das Band schreiben
   */
  private char schreibeZeichen = '*'; 
  /*
   * L/S-Kopf bewegen
   */
  private int operation; 
  /*
   * folgeZustand
   */
  private Zustand folgeZustand; 


  /*
   * Die Konfig ist wie folgt in einem 4-Tupel definiert.
   */
  public Konfig (char leseZeichen, char schreibeZeichen, int operation,
      Zustand folgeZustand)
  {
    this.leseZeichen = leseZeichen;
    this.schreibeZeichen = schreibeZeichen;
    this.operation = operation;
    this.folgeZustand = folgeZustand;
  }


  /*
   * Gibt das Zeichen in schreibeZeichen zurueck
   */
  public char getSchreibeZeichen ()
  {
    return schreibeZeichen;
  }


  /*
   * Gibt die Operation zurueck
   */
  public int getOperation ()
  {
    return operation;
  }


  /*
   * Gibt das Zeichen in leseZeichen zurueck
   */
  public char getLeseZeichen ()
  {
    return leseZeichen;
  }


  /*
   * Gibt den Folgezusatnd zurueck
   */
  public Zustand getFolgeZustand ()
  {
    return folgeZustand;
  }


  /*
   * Diese Methode Prueft ob ein Eingabezeichen mit dem leseZeichen
   * uebereinstimmt.
   */
  public boolean pruefeLeseZeichen (char zuPruefenNach)
  {
    if (leseZeichen == zuPruefenNach)
    {
      return true;
    }
    return false;
  }
}
